
package GUI;

import dominio.Cliente;
import dominio.Endereco;
import dominio.Telefone;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import negocio.ClienteNegocio;
import negocio.EnderecoNegocio;
import negocio.TelefoneNegocio;


public class ControladorJanelaCadastrar implements ActionListener {
    private ClienteNegocio negocio = new ClienteNegocio();
    private EnderecoNegocio enderecoNegocio = new EnderecoNegocio();
    private TelefoneNegocio telefoneNegocio = new TelefoneNegocio();
    private Cliente cL = new Cliente();
    private Endereco e = new Endereco();
    private Telefone t = new Telefone();
    private JanelaCadastrarCliente jCC;
    private String mensagem ="";
    private String mensagemCampoObrigatorio ="";

    public String getMensagemCampoObrigatorio() {
        return mensagemCampoObrigatorio;
    }

    public void setMensagemCampoObrigatorio(String mensagemCampoObrigatorio) {
        this.mensagemCampoObrigatorio = mensagemCampoObrigatorio;
    }

    public String getMensagem() {
        return mensagem;
    }

    public void setMensagem(String mensagem) {
        this.mensagem = mensagem;
    }


    /*public Cliente getcL() {
        return cL;
    }

    public void setcL(Cliente cL) {
        this.cL = cL;
    }*/


    public ControladorJanelaCadastrar(){
    }

    public void setJanelaCadastrarCliente(JanelaCadastrarCliente jCC2){
        jCC = jCC2;
    }




    public void inserir(){
        
        try
        {
            if (jCC.getCampoNome().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoCPF().trim().length() < 14)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoBairro().trim().length() ==0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoRua().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoNumero().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoUF().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            } else if (jCC.getCampoCidade().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }
            
            if (mensagemCampoObrigatorio.equalsIgnoreCase("Preencha todos os campos obrigatórios"))
            {
                JOptionPane.showMessageDialog(jCC, getMensagemCampoObrigatorio());
                setMensagemCampoObrigatorio("");
                return;
            }else
            {
                cL.setNome(jCC.getCampoNome());
                cL.setCpf(jCC.getCampoCPF());
                cL.setObservacao(jCC.getCampoObs());
                e.setBairro(jCC.getCampoBairro());
                e.setRua(jCC.getCampoRua());
                e.setNumero(Integer.parseInt(jCC.getCampoNumero()));
                e.setUf(jCC.getCampoUF());
                e.setCidade(jCC.getCampoCidade());
                e.setCpf(cL.getCpf());
                e.setCliente(cL);
                t.setTelefone(jCC.getCampoTelefone());
                t.setCpf(jCC.getCampoCPF());
                t.setCliente(cL);
                setMensagem(negocio.incluirClienteDAO(cL));
                enderecoNegocio.incluirEnd(e);
                telefoneNegocio.incluirTel(t);
                limparTela();
                JOptionPane.showMessageDialog(jCC, getMensagem());
                jCC.setVisible(false);
            }
        }catch(Exception ex)
        {
            ex.getStackTrace();
        }


    }

    public void alterar ()
    {
        try
        {
            if (jCC.getCampoNome().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoCPF().trim().length() < 14)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoBairro().trim().length() ==0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoRua().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoNumero().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }else if (jCC.getCampoUF().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            } else if (jCC.getCampoCidade().trim().length() == 0)
            {
                setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios");
            }

            if (mensagemCampoObrigatorio.equalsIgnoreCase("Preencha todos os campos obrigatórios"))
            {
                JOptionPane.showMessageDialog(jCC, getMensagemCampoObrigatorio());
                setMensagemCampoObrigatorio("");
                return;
            }else
            {
                cL.setNome(jCC.getCampoNome());
                cL.setCpf(jCC.getCampoCPF());
                cL.setObservacao(jCC.getCampoObs());
                e.setBairro(jCC.getCampoBairro());
                e.setRua(jCC.getCampoRua());
                e.setNumero(Integer.parseInt(jCC.getCampoNumero()));
                e.setUf(jCC.getCampoUF());
                e.setCidade(jCC.getCampoCidade());
                e.setCliente(cL);
                e.setCpf(cL.getCpf());
                t.setCpf(jCC.getCampoCPF());
                t.setTelefone(jCC.getCampoTelefone());
                t.setCliente(cL);
                setMensagem(negocio.alterarClienteDAO(cL));
                enderecoNegocio.alterarEnd(e);
                if (telefoneNegocio.pesquisarTelefone(cL.getCpf()) == null)
                {
                    telefoneNegocio.incluirTel(t);
                }else
                {
                    telefoneNegocio.alterarTelefoneDAO(t);
                }
                limparTela();
                JOptionPane.showMessageDialog(jCC, getMensagem());
                jCC.setVisible(false);
            }
        }catch(Exception ex)
        {
            ex.getStackTrace();
        }

    }

    public void limparTela ()
    {
        jCC.setCampoBairro("");
        jCC.setCampoCPF("");
        jCC.setCampoCidade("");
        jCC.setCampoNome("");
        jCC.setCampoNumero("");
        jCC.setCampoObs("");
        jCC.setCampoRua("");
        jCC.setCampoTelefone("");
        jCC.setCampoUF("");
    }

    public void sairJanelaCadastrarCliente ()
    {
        limparTela();
        jCC.setVisible(false);
    }


    @Override
    public void actionPerformed(ActionEvent e){
        if(e.getActionCommand().equalsIgnoreCase("Salvar")){
            inserir();
        } else
            if (e.getActionCommand().equalsIgnoreCase("Alterar"))
            {
                alterar();
            }else if (e.getActionCommand().equalsIgnoreCase("Sair"))
            {
                sairJanelaCadastrarCliente();
            }
    }
}
